package cn.iocoder.yudao.module.iot.gateway.service.scene;

import cn.iocoder.yudao.module.iot.core.biz.dto.IotSceneRespDTO;

import java.util.List;

/**
 * IoT 场景信息 Service 接口
 */
public interface IotSceneService {

    /**
     * 根据id获取场景信息
     * @param id 场景编号
     * @return 场景信息
     */
    IotSceneRespDTO getSceneFromCache(Long id);

    /**
     * 根据场景名称获取场景信息
     * @param sceneName 场景名称
     * @return 场景信息
     */
    IotSceneRespDTO getSceneFromCache(String sceneName);

    /**
     * 获取所有场景
     */
    List<IotSceneRespDTO> getAllScenes();

    /**
     * 根据设备ID获取相关的场景动作信息
     * @param deviceId 设备ID
     * @return 包含该设备的场景动作列表
     */
    List<IotSceneRespDTO> getSceneActionsByDeviceId(Long deviceId);

    /**
     * 根据设备ID获取相关场景及动作信息
     */
    List<IotSceneRespDTO> getScenesAndActionsByDeviceId(Long deviceId);

    /**
     * 获取所有启用的场景（包括定时场景）
     * @return 启用的场景列表
     */
    List<IotSceneRespDTO> getAllEnabledScenes();
}